package com.shujia.day09.bao1;

/*
    形式参数
        基本类型: 当基本数据类型作为参数传递的时候，传递是具体的数值
        引用类型:
            数组：当数组作为方法的参数类型的时候，将来需要传递数组的地址值
            具体的类：当你看到一个类作为方法的参数类型的时候，将来调用需要传入该类或该类的子类的对象
            抽象类：当你看到一个抽象类作为方法的参数类型的时候，将来调用需要传入该抽象类具体实现子类的对象
            接口：

 */
abstract class Student2{
    public abstract void fun1();
}

class Student2Zi extends Student2{
    @Override
    public void fun1() {
        System.out.println("江川是世界上手速最快的男人！");
    }
}

class StudentDemo2{
    //当你看到一个抽象类作为方法的参数类型的时候，将来调用需要传入该抽象类具体实现子类的对象
    public void show1(Student2 student2){ //Student2 student2 = new Student2Zi()
        student2.fun1();
    }
}

public class Demo2 {
    public static void main(String[] args) {
        StudentDemo2 studentDemo2 = new StudentDemo2();
        studentDemo2.show1(new Student2Zi());
    }
}
